package com.bfly.mall.wechat.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bfly.core.base.entity.BaseEntity;

import java.io.Serializable;
import java.util.List;

/**
 * 微信公众号素材
 *
 * @author 长沙商脉科技有限公司
 * @date 2021/1/4 14:02
 */
@TableName(value = "wechat_mp_material", resultMap = "WeChatMpMaterialResultMap")
public class WeChatMpMaterial extends BaseEntity implements Serializable,Comparable<WeChatMpMaterial> {

    private static final long serialVersionUID = -5236267501433190431L;

    /**
     * 素材id---上传微信后回写
     * 可以重复 多图文情况下 多篇文章对应一个media
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 16:54
     */
    @TableField("media_id")
    private String mediaId;

    /**
     * 图片（image）、语音（voice）、视频（video）、图文news
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 16:56
     */
    @TableField("type")
    private String type;

    /**
     * 文件名
     * @author 长沙商脉科技有限公司
     * @date 2021/1/10 16:02
     */
    @TableField("file_name")
    private String fileName;

    /**
     * 图文标题/视频标题/语音标题
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 16:55
     */
    @TableField("title")
    private String title;
    
    /**
     * 图文消息的封面图片/上传的图片
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:03
     */
    @TableField("cover")
    private String cover;

    /**
     * 图文消息作者
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:03
     */
    @TableField("author")
    private String author;
    
    /**
     * 图文消息的摘要，仅有单图文消息才有摘要，多图文此处为空。如果本字段为没有填写，则默认抓取正文前64个字。
     * 视频素材的描述
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:04
     */
    @TableField("digest")
    private String digest;

    /**
     * 图文消息是否显示封面，0为false，即不显示，1为true，即显示
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:05
     */
    @TableField("is_show_cover")
    private boolean showCover;
    
    /**
     * 图文消息的具体内容，支持HTML标签，必须少于2万字符，小于1M，且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:05
     */
    @TableField("content")
    private String content;

    /**
     * 图文消息的原文地址，即点击“阅读原文”后的URL
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:05
     */
    @TableField("source_url")
    private String sourceUrl;
    
    /**
     * Uint32 是否打开评论，0不打开，1打开
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:06
     */
    @TableField("is_open_comment")
    private boolean openComment;

    /**
     * Uint32 是否粉丝才可评论，0所有人可评论，1粉丝才可评论
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:06
     */
    @TableField("is_can_comment")
    private boolean canComment;

    /**
     * 平台Id
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:09
     */
    @TableField("platform_id")
    private int platformId;

    /**
     * 多图文下的排序
     * @author 长沙商脉科技有限公司
     * @date 2021/1/9 17:11
     */
    @TableField("seq")
    private int seq;

    /**
     * 多图文素材
     * @author 长沙商脉科技有限公司
     * @date 2021/1/11 21:31
     */
    @TableField(exist = false)
    private List<WeChatMpMaterial> news;

    /**
     * 多图文素材主图文
     * @author 长沙商脉科技有限公司
     * @date 2021/1/11 21:59
     */
    @TableField("is_more")
    private boolean more;

    /**
     * 图文链接地址---回写
     * @author 长沙商脉科技有限公司
     * @date 2021/1/12 15:10
     */
    @TableField("link")
    private String link;

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public List<WeChatMpMaterial> getNews() {
        return news;
    }

    public void setNews(List<WeChatMpMaterial> news) {
        this.news = news;
    }

    @Override
    public int compareTo(WeChatMpMaterial o) {
        return this.getSeq()-o.getSeq();
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public int getSeq() {
        return seq;
    }

    public void setSeq(int seq) {
        this.seq = seq;
    }

    public int getPlatformId() {
        return platformId;
    }

    public void setPlatformId(int platformId) {
        this.platformId = platformId;
    }

    public String getMediaId() {
        return mediaId;
    }

    public void setMediaId(String mediaId) {
        this.mediaId = mediaId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getCover() {
        return cover;
    }

    public void setCover(String cover) {
        this.cover = cover;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getDigest() {
        return digest;
    }

    public void setDigest(String digest) {
        this.digest = digest;
    }

    public boolean isShowCover() {
        return showCover;
    }

    public void setShowCover(boolean showCover) {
        this.showCover = showCover;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getSourceUrl() {
        return sourceUrl;
    }

    public void setSourceUrl(String sourceUrl) {
        this.sourceUrl = sourceUrl;
    }

    public boolean isOpenComment() {
        return openComment;
    }

    public void setOpenComment(boolean openComment) {
        this.openComment = openComment;
    }

    public boolean isCanComment() {
        return canComment;
    }

    public void setCanComment(boolean canComment) {
        this.canComment = canComment;
    }

    public boolean isMore() {
        return more;
    }

    public void setMore(boolean more) {
        this.more = more;
    }
}
